package com.mo.tools.log.oplog;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
public @interface LogRecord {
    /**
     * 日志内容，支持SpEL表达式
     */
    String content() default "";

    /**
     * 业务标识，支持SpEL表达式
     */
    String bizNo() default "";

    /**
     * 操作类型
     *
     * @return
     */
    OperationType operationType() default OperationType.DEFAULT;

    /**
     * 业务类型
     *
     * @return
     */
    BizType bizType() default BizType.DEFAULT;

    /**
     * 日志类型
     */
    LogType logType();

    /**
     * 日志分类, 支持SpEL表达式
     */
    String logCategory();

    /**
     * 日志页面, 支持SpEL表达式
     */
    String logPage() default "";

    /**
     * 日志记录条件，支持SpEL表达式
     */
    String condition() default "true";

    /**
     * 备注
     * @return
     */
    String remark() default "";

    /**
     * 是否保存入参
     */
    TrueOrFalse saveParams() default TrueOrFalse.TRUE;

    /**
     * 同一个事务处理，处理失败不影响原方法
     */
    TrueOrFalse sameTransaction() default TrueOrFalse.TRUE;
}
